<?php
require_once("BaseDatos.class.php");

/*
 * Clase encargada de la interacción con la base de datos,
 * para cliente.
 * Extiende BaseDatos que implementa la interacción directa
 * generalizada con la base de datos.
 */
class usuariosBD extends BaseDatos
{
	/*
	 * Inserta los datos del objeto usuarios actual
	 * a la base de datos.
	 *
	 * Retorna true si se logró insertar los datos.
	 */
	function insert(){

	//Comando a ejecutar
		$sql = "INSERT INTO usuario "
				."(nombres, apellidos, fono, direccion, username, password , fecha_registro)"
				." VALUES ("
				."'".$this->nombres."', "
				."'".$this->apellidos."', "
			        ."'".$this->fono."', "
				."'".$this->direccion."', "
				."'".$this->username."', "
				."'".$this->password."', "
				." NOW() );";
				//."'".$this->fecha_registro."); ";
				
		//Se hace el insert
		$result = $this->insertbd($sql);
		$this->close();
				
		if(!$result)
			return false;
		else
			return true;
	}

	/*
	 * Obtiene una lista con los usuarios y
	 * retorna un arreglo con esta información.
	 *
	 * Retorna un arreglo con usuarios.
	 */	
	function listaUsuarios(){
		global $oConn;
		
		//Se pide la clase usuarios para crear objetos usuarios
		require_once('includes/class/cliente.class.php');
		$this->connectClass();
		
		//SQL a ejecutar para buscar los usuarios
		$sql="SELECT id, nombres, apellidos, direccion, telefono,fecha_registro FROM 			usuarios";
		$result = $this->query($sql);
		
		////Se crea un arreglo de usuarios que será lo que se retorna
		$usuarios = array();
		
		//Se itera por cada resultado, agregando cada usuarios al arreglo
		while (list($id, $nombres, $apellidos, $rut, $direccion, $fono, $fecha_registro) = $this->fetch($result)) {
			$usuarios = new usuarios();
			$usuarios->setId($id);
			$usuarios->setNombres($nombres);
			$usuarios->setApellidos($apellidos);
			$usuarios->setTono($fono);
			$usuarios->setDireccion($direccion);
			$usuarios->setfecha_registro($fecha_registro);
			$usuarios[] = $usuarios;
		}
		$this->close();	
		
		return $usuarios;
	}

	/*
	 * Loguea al usuario usuarios actual al sistema.
	 *
	 * Retorna true si se logró el login.
	 */
	function login(){
		global $oConn;
		$this->connectClass();
		
		//Query que busca en la base de datos al usuario con el password enviado
		$sql = "SELECT username FROM usuario where username = '".$this->username."' and password = '".$this->password."';";
		$result = $this->query($sql);
		
		//Si hay exáctamente un resultado, se encontró el usuario
		if($this->numRows($result)==1){
			list($username) = $this->fetch($result);
			
			session_start();
			$_SESSION['username'] = $username;
			$this->close();
			
			return true;
		}else
			$this->close();
			return false;
	}
}
